﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
using System.Data;
using System.Text.RegularExpressions;
using System.ComponentModel;
using System.Windows.Forms;

namespace BoletoElectronicoDesktop
{
    public static class Funciones

    {
        //guarda la conexión
        public static string connectionString = "server=localhost\\SQLSERVER2005;database=GD2C2011;User Id=gd;Password=gd2011;Trusted_Connection=False";
        //guarda el id de cliente
        public static string cliente;

        //guarda el username del usuario loggueado
        public static string username;

        //convierte una string de fecha al formato de sql 
        public static string convierteFecha(string fecha)
        {
            
            //año
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            sb.Append(fecha[6]);
            sb.Append(fecha[7]);
            sb.Append(fecha[8]);
            sb.Append(fecha[9]);
            sb.Append(fecha[3]);
            sb.Append(fecha[4]);
            sb.Append(fecha[0]);
            sb.Append(fecha[1]);
            return sb.ToString();

            
         }
       



        //valida que la tecla pulsada sea de texto úncamente
        //usado para los Textbox
        public static void validarTexto(KeyPressEventArgs e)
        {
            if (Char.IsLetter(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsControl(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsSeparator(e.KeyChar))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }
         //valida que la tecla pulsada sea numérica
        public static void validarNumero(KeyPressEventArgs e)
        {
             if (Char.IsDigit(e.KeyChar))
            {
                e.Handled = false;
            }
             else if (Char.IsControl(e.KeyChar))
             {
                 e.Handled = false;
             }
             else
             {
                 e.Handled = true;
             }
        }

        //VAlida que la tecla sea un numero o "."
        public static void validarDecimal (KeyPressEventArgs e)
        {
            if (!char.IsNumber(e.KeyChar) & (Keys)e.KeyChar != Keys.Back
             & e.KeyChar != ',')
            {
                e.Handled = true;
            }
        }








        //convierte una cadena en su valor Hash
        public static string ObtenerContraseñaHash(string contraseña)
        {

            SHA256 sha256 = SHA256CryptoServiceProvider.Create();
            Byte[] hash = sha256.ComputeHash(ASCIIEncoding.Default.GetBytes(contraseña.Trim()));
            StringBuilder ContraseñaCifrada = new StringBuilder();
            foreach (byte xD in hash)
            {
                ContraseñaCifrada.AppendFormat("{0:x2}", xD);
            }
            return ContraseñaCifrada.ToString();
        }
    }
        
}
